﻿//定义页面对象
var pageModel = new Object;

//初始化页面对象
function initPageModel() {
    //勾选的关联项目列表
    pageModel.projects = Array();
    //已选专家列表
    pageModel.expertYXs = Array();
}

//获取专家分类树形
function getCategorys(str_url) {
    $.ajax({
        type: "GET",
        url: str_url,
        dataType: "json",
        success: function (data) {
            //初始化专业专家的所属分类
            $.fn.zTree.init($("#treeCategory"), setting, data);

            //判断当前显示的类型ID是否为空，如果不是，在树形菜单中查找该ID的节点，展开并设置为选中
            var this_id = $("#typeId").val();

            //根据节点的Id，获取节点
            var treeObj = $.fn.zTree.getZTreeObj("treeCategory");
            var nodes = treeObj.getNodesByParam("id", this_id, null);

            //设置当前节点为选定，展开
            if (nodes.length > 0) {
                treeObj.selectNode(nodes[0]);
                treeObj.expandNode(nodes[0], true, true, false);
            } else {
                $("#typeId").val("");
                $("#typePId").val("");
                $("#typeCode").val("");
                $("#typeName").val("");
            }

        }
    });
}

//获取备选专家列表
function getExpertBXs(str_url) {
    //拼凑查询条件
    var qParam = new Object;
    qParam.qName = $("#qName").val();
    qParam.qProfessional = $("#qProfessional").val();

    //根据专家分类勾选状态，获取专家的分类字符串，以逗号隔开
    var treeObj = $.fn.zTree.getZTreeObj("treeCategory");
    var nodes = treeObj.getCheckedNodes(true);
    var strIDs = "";
    if (nodes != null && nodes.length > 0) {
        for (var i = 0, l = nodes.length; i < l; i++) {
            var halfCheck = nodes[i].getCheckStatus();
            if (!halfCheck.half) {
                if (strIDs == "") {
                    strIDs = nodes[i].id;
                } else {
                    strIDs += "," + nodes[i].id;
                }
            }
        }
    }
    qParam.qCategoryIDs = strIDs;
    qParam.pageSize = 20;
    qParam.pageIndex = 0;

    //根据条件查询
    $.ajax({
        type: "POST",
        url: str_url,
        dataType: "json",
        data: JSON.stringify(qParam),
        contentType: 'application/json; charset=utf-8',
        success: function (data) {
            if (data.ISOK) {
                $("#expertBXs").html("");
                //将数据填充表格模板
                $('#DataTemplate').tmpl(data.experts).appendTo('#expertBXs');
                if (data.recordCount > 20) {
                    $("#expertBXsInfo").html("本次查询共获取" + data.recordCount + "专家信息！当前只显示最前面的20位专家信息。");
                } else {
                    $("#expertBXsInfo").html("本次查询共获取" + data.recordCount + "专家信息！");
                }

            } else {
                $("#expertBXs").html("");
                $("#expertBXsInfo").html("查询专家错误！请确认查询条件是否正确");
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alertMSG(textStatus);
        }
    });
}

//显示已选专家列表
function showExpertYXs() {
    $("#expertYXs").html("");
    //将数据填充表格模板
    $('#TemplateYX').tmpl(pageModel.expertYXs).appendTo('#expertYXs');
    $("#expertYXsCount").html(pageModel.expertYXs.length);
}

//根据专家ID，获取专家信息，放入已选专家列表中
function saveAExpertAsYX(str_expert_id) {
    //定义已选是否已经存在
    var yxIsHas = false;

    for (var i = 0; i < pageModel.expertYXs.length; i++) {
        if (pageModel.expertYXs[i].expID == str_expert_id) {
            //循环已选的专家，判断是否已经存在当前要添加的专家记录
            yxIsHas = true;
            break;
        }
    }
    if (yxIsHas) {
        //已选的专家中已经存在当前专家记录
    } else {
        //已选专家列表中没有存在当前专家记录，查询并添加
        //根据ID查询专家信息
        $.ajax({
            type: "POST",
            url: strUrlgetAExpert,
            dataType: "json",
            data: { expId: str_expert_id },
            success: function (data) {
                if (data.ISOK) {
                    //将当前查询到的专家信息保存到已选专家列表中
                    var thisExp = new Object;
                    thisExp.expID = data.expert.ID;
                    thisExp.expName = data.expert.Name;
                    thisExp.expMobile = data.expert.Mobile;
                    thisExp.expCompany = data.expert.Company;
                    thisExp.expTitle = data.expert.Title;
                    thisExp.expProfessional = data.expert.Professional;
                    //抽取结果
                    thisExp.extracResult = true;
                    //抽取描述
                    thisExp.extracDescribe = "系统拨号......\r\n系统播放提示语音......\r\n等待用户按键......\r\n用户确认到场评标，系统挂机......\r\n系统重新初始化完毕，流程结束。";

                    pageModel.expertYXs.push(thisExp);

                    showExpertYXs()
                } else {
                    alertMSG("查询专家错误！请确认查询条件是否正确");
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alertMSG(textStatus);
            }
        });
    }
}

//从已选专家列表中删除一个专家
function deleteAExpertFromYX(str_expert_id) {
    if (confirm("真的要删除当前记录吗？")) {
        //设置
        $("#opFlag").attr({ value: "@ExpertConfirm.OPType.DELETE_THIS_EXTRACT" });
        $("#opThisExtractID").attr({ value: extractID });
        $("#form_op").submit();
    }
}

//为当前关联的项目保存抽取预算记录
function saveProjectExtract() {
    //设置
    $("#opFlag").attr({ value: "@ExpertConfirm.OPType.SAVE_THIS_PROJECT_EXTRACT" });
    $("#form_op").submit();
}